package com.jp.juc.base;

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;

public class OnlyMain {


    public static void main(String[] args) {
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
        for (ThreadInfo threadInfo : threadInfos) {
            System.out.printf("[%d]---[%s]---[%s]%n", threadInfo.getThreadId(),
                    threadInfo.getThreadName()
                    , threadInfo.getThreadState().name());
        }

    }
/*
  [6]---[Monitor Ctrl-Break]---[RUNNABLE] // 监控Ctrl-Break中断信号的
  [5]---[Attach Listener]---[RUNNABLE] //内存dump，线程dump，类信息统计，获取系统属性等
  [4]---[Signal Dispatcher]---[RUNNABLE] // 分发处理发送给JVM信号的线程
  [3]---[Finalizer]---[WAITING] // 调用对象finalize方法的线程
  [2]---[Reference Handler]---[WAITING] // 清除Reference的线程
  [1]---[main]---[RUNNABLE] // main线程，用户程序入口
 */
}
